<?php

namespace Agp\CoreBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * Agp\CoreBundle\Entity\Chamada
 *
 * @ORM\Table(name="chamada_suporte")
 * @ORM\Entity(repositoryClass="Agp\CoreBundle\Repository\ChamadaSuporteRepository")
 */
class ChamadaSuporte
{
    /**
     * @var integer $codTerminal
     *
     * @ORM\Column(name="cod_chamada_suporte", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $codChamadaSuporte;

    /**
     * @var object $empresa
     *
     * @ORM\ManyToOne(targetEntity="Pessoa", fetch="LAZY")
     * @ORM\JoinColumn(name="cod_pessoa", referencedColumnName="cod_pessoa", onDelete="cascade")
     */
    protected $pessoa;
    
    const AS_FINANCEIRO = "Financeiro";
    const AS_COMERCIAL = "Comercial";
    const AS_SUPORTE_SITE = "Suporte Site";
    const AS_SUPORTE_TERMINAL = "Suporte Terminal";
    const AS_SUGESTAO_IDEIA = "Sugestão e Idéia";
    const AS_REPORTAR_ERRO = "Reportar Erro";
    
    /**
     * @var string $assunto
     *
     * @ORM\Column(name="assunto", type="string", length=80, nullable=false)
     * @Assert\NotBlank
     */
    protected $assunto;
    
    /**
     * @var string $assunto
     *
     * @ORM\Column(name="conteudo", type="text", nullable=false)
     * @Assert\NotBlank
     */
    protected $conteudo;
    
    /**
     * @var string $assunto
     *
     * @ORM\Column(name="email_remetente", type="string", length=45, nullable=false)
     * @Assert\NotBlank
     * @Assert\Email
     */
    protected $emailRemetente;
    
    /**
     * @var string $assunto
     *
     * @ORM\Column(name="email_destinatario", type="string", length=45, nullable=false)
     */
    protected $emailDestinatario;
    
    /**
     * @var string $enviado
     *
     * @ORM\Column(name="enviado", type="boolean", nullable=false)
     */
    protected $enviado;
    
    /**
     * @var datetime $dtEnviado
     * @ORM\Column(name="dt_envio", type="datetime", nullable=false)
     */
    protected $dtEnvio;
    
    public function __construct() {
        $this->enviado = true;
        $this->dtEnvio = new \DateTime;
    }

    public function getCodChamadaSuporte() {
        return $this->codChamadaSuporte;
    }

    public function setCodChamadaSuporte($codChamadaSuporte) {
        $this->codChamadaSuporte = $codChamadaSuporte;
    }

    public function getPessoa() {
        return $this->pessoa;
    }

    public function setPessoa($pessoa) {
        $this->pessoa = $pessoa;
    }

    public function getAssunto() {
        return $this->assunto;
    }

    public function setAssunto($assunto) {
        $this->assunto = $assunto;
    }

    public function getConteudo() {
        return $this->conteudo;
    }

    public function setConteudo($conteudo) {
        $this->conteudo = $conteudo;
    }

    public function getEmailRemetente() {
        return $this->emailRemetente;
    }

    public function setEmailRemetente($emailRemetente) {
        $this->emailRemetente = $emailRemetente;
    }

    public function getEmailDestinatario() {
        return $this->emailDestinatario;
    }

    public function setEmailDestinatario($emailDestinatario) {
        $this->emailDestinatario = $emailDestinatario;
    }
    
    public function getEnviado() {
        return $this->enviado;
    }

    public function setEnviado($enviado) {
        $this->enviado = $enviado;
    }

    public function getDtEnvio() {
        return $this->dtEnvio;
    }

    public function setDtEnvio($dtEnvio) {
        $this->dtEnvio = $dtEnvio;
    }
       
    public static function getAssuntoList(){
        return array(self::AS_FINANCEIRO => self::AS_FINANCEIRO,
                     self::AS_COMERCIAL => self::AS_COMERCIAL,
                     self::AS_SUPORTE_SITE => self::AS_SUPORTE_SITE,
                     self::AS_SUPORTE_TERMINAL => self::AS_SUPORTE_TERMINAL,
                     self::AS_SUGESTAO_IDEIA => self::AS_SUGESTAO_IDEIA);
                     //self::AS_REPORTAR_ERRO => self::AS_REPORTAR_ERRO);
    }
    
    public static function getAssuntoEcommerceList(){
        return array(self::AS_COMERCIAL => self::AS_COMERCIAL,
                     self::AS_SUPORTE_SITE => self::AS_SUPORTE_SITE,
                     self::AS_SUGESTAO_IDEIA => self::AS_SUGESTAO_IDEIA);
                     //self::AS_REPORTAR_ERRO => self::AS_REPORTAR_ERRO);
    }

}